package com.vxdata

object 基础_4_流程控制 {
  def main(args: Array[String]): Unit = {
    // TODO if(){} else{}
    val age = 10
    if (age < 18) {
      println("童年")
    } else if (age >= 18 && age < 30) {
      println("中年")
    } else {
      println("老年")
    }

    /**
     * TODO for循环
     */
    //  前后闭合
    for (i <- 1 to 3) {
      print(i + " ")
      // 1 2 3
    }
    println()

    // 前闭后开
    for (i <- 1 until 3) {
      print(i + " ")
      // 1 2
    }
    println()


    /**
     * 循环守卫
     */
    for (i <- 1 to 3 if i != 2) {
      print(i + " ")
      // 1 3
    }
    println()
    // 等同于
    for (i <- 1 to 3) {
      if (i != 2) {
        print(i + " ")
      }
      // 1 3
    }


    println()

    /**
     * 循环步长 每步走两格
     */
    for (i <- 1 to 10 by 2) {
      print("i=" + i + " ")
      // i=1 i=3 i=5 i=7 i=9
    }

    /**
     * 嵌套循环
     */
    for (i <- 1 to 3; j <- 1 to 3) {
      println(" i =" + i + " j = " + j)
    }
    //    i =1 j = 1
    //    i =1 j = 2
    //    i =1 j = 3
    //    i =2 j = 1
    //    i =2 j = 2
    //    i =2 j = 3
    //    i =3 j = 1
    //    i =3 j = 2
    //    i =3 j = 3

    /**
     * 循环返回值
     */
    val res: Seq[Int] = for (i <- 1 to 10) yield i
    println(res) // Vector(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    /**
     * 倒序循环
     */
    for (i <- 1 to 10 reverse) {
      print(i + " ")
      // 10 9 8 7 6 5 4 3 2 1
    }
  }

}
